Systems and methods for facilitating seamless flow content splicing

ABSTRACT

Systems, methods, machine-readable media, and media device are provided to facilitate seamless flow content splicing to dynamically insert particularized content items in television programming content. A plurality of particularized content items may be received and stored in a content store. First content that corresponds to television programming may be received and processed to detect a first set of color characteristics of video content. A subset of the particularized content items may be selected based on matching a second set of color characteristics of the subset of the particularized content items to the first set of color characteristics of the video content corresponding to the television programming. The first content may be output for display. Then, the subset of the particularized content items may be output for display in succession so that display of the subset of the particularized content items directly follows display of the first content.

CROSS-REFERENCES TO RELATED APPLICATIONS

This application is a continuation of U.S. patent application Ser. No.17/067,422, filed on Oct. 9, 2020, which is a continuation of U.S.patent application Ser. No. 16/152,068, filed on Oct. 4, 2018, which isa continuation of U.S. patent application Ser. No. 15/589,202, filed onMay 8, 2017. The entire disclosures of all of the aforementioned U.S.patent applications are hereby incorporated by reference, for allpurposes, as if fully set forth herein.

BACKGROUND

This disclosure generally relates to television content handling. Usersof televisions and other video distribution platforms are now exposed tomore varying types of content than ever before. However, with theproliferation of different content, a viewer can encounter a number ofdifficulties. Chief among the difficulties is a disconnected userexperience when the user views changes in content. The changes incontent often result in the user not being able to experience differentcontent seamlessly, which can negatively impact the user's enjoyment.The lack of a relationship between different content items must besolved so as to allow users to better experience different content.

Thus, there is a need for systems and methods that address the foregoingproblems in order to provide viewers with better, more tailored viewerexperiences. This and other needs are addressed by the presentdisclosure.

BRIEF SUMMARY

Certain embodiments of the present disclosure relate generally totelevision content handling, and more particularly to systems andmethods for facilitating seamless flow content splicing.

In one aspect, a method for seamless flow content splicing todynamically insert particularized content items in televisionprogramming content is disclosed. The method may include performing oneor a combination of the following with a media device. A plurality ofparticularized content items may be received. The plurality ofparticularized content items may be stored in a content store. Firstcontent that corresponds to television programming may be received. Thefirst content may be processed to detect a first set of one or morecolor characteristics of video content. The first content may includethe video content. A subset of the plurality of particularized contentitems may be selected based at least in part on matching a second set ofone or more color characteristics of the subset of the plurality ofparticularized content items to the first set of one or more colorcharacteristics of the video content corresponding to the televisionprogramming. The first content may be output for display. Then, thesubset of the plurality of particularized content items may be outputfor display in succession so that display of the subset of the pluralityof particularized content items directly follows display of the firstcontent.

In another aspect, a media device to facilitate seamless flow contentsplicing to dynamically insert particularized content items intelevision programming content is disclosed. The media device mayinclude one or more processors. The media device may include a memorycommunicatively coupled with and readable by the one or more processorsand having stored therein processor-readable instructions which, whenexecuted by the one or more processors, cause the one or more processorsto perform one or a combination of the following. A plurality ofparticularized content items may be received. The plurality ofparticularized content items may be stored in a content store. Firstcontent that corresponds to television programming may be received. Thefirst content may be processed to detect a first set of one or morecolor characteristics of video content. The first content may includethe video content. A subset of the plurality of particularized contentitems may be selected based at least in part on matching a second set ofone or more color characteristics of the subset of the plurality ofparticularized content items to the first set of one or more colorcharacteristics of the video content corresponding to the televisionprogramming. The first content may be output for display. Then, thesubset of the plurality of particularized content items may be outputfor display in succession so that display of the subset of the pluralityof particularized content items directly follows display of the firstcontent.

In yet another aspect, one or more non-transitory, machine-readablemedia are disclosed. The one or more non-transitory, machine-readablemedia may have instructions thereon which, when executed by one or moreprocessing devices, cause the one or more processing devices to performone or a combination of the following. A plurality of particularizedcontent items may be received. The plurality of particularized contentitems may be stored in a content store. First content that correspondsto television programming may be received. The first content may beprocessed to detect a first set of one or more color characteristics ofvideo content. The first content may include the video content. A subsetof the plurality of particularized content items may be selected basedat least in part on matching a second set of one or more colorcharacteristics of the subset of the plurality of particularized contentitems to the first set of one or more color characteristics of the videocontent corresponding to the television programming. The first contentmay be output for display. Then, the subset of the plurality ofparticularized content items may be output for display in succession sothat display of the subset of the plurality of particularized contentitems directly follows display of the first content.

In various embodiments, the first content may correspond to a scene ofthe television programming that is directly before a commercial break.In various embodiments, the subset of the plurality of particularizedcontent items may correspond to a single commercial. In variousembodiments, the second set of one or more color characteristics of thesubset may correspond to an initial portion of the single commercial.

In various embodiments, the first content may be processed to detect afirst set of one or more acoustic characteristics of audio content. Thefirst content may include the audio content. The selecting the subset ofthe plurality of particularized content items may be further based atleast in part on matching a second set of one or more acousticcharacteristics of the subset of the plurality of particularized contentitems to the first set of one or more acoustic characteristics of theaudio content corresponding to the television programming.

In various embodiments, the first content may be processed to detect afirst set of one or more dialogue characteristics of the audio content.The selecting the subset of the plurality of particularized contentitems may be further based at least in part on matching a second set ofone or more dialogue characteristics of the subset of the plurality ofparticularized content items to the first set of one or more dialoguecharacteristics of the audio content corresponding to the televisionprogramming.

In various embodiments, a second subset of the plurality ofparticularized content items may be selected based at least in part onmatching a third set of one or more characteristics of the second subsetof the plurality of particularized content items to at least one of thesecond set of one or more color characteristics, the second set of oneor more acoustic characteristics, and/or the second set of one or moredialogue characteristics of subset of the plurality of particularizedcontent items. The second subset of the plurality of particularizedcontent items may be output in succession to the subset of the pluralityof particularized content items so that display of the second subset ofthe plurality of particularized content items directly follows displayof the subset of the plurality of particularized content items.

Further areas of applicability of the present disclosure will becomeapparent from the detailed description provided hereinafter. It shouldbe understood that the detailed description and specific examples, whileindicating various embodiments, are intended for purposes ofillustration only and are not intended to necessarily limit the scope ofthe disclosure.

BRIEF DESCRIPTION OF THE DRAWINGS

A further understanding of the nature and advantages of variousembodiments may be realized by reference to the following figures. Inthe appended figures, similar components or features may have the samereference label. Further, various components of the same type may bedistinguished by following the reference label by a dash and a secondlabel that distinguishes among the similar components. If only the firstreference label is used in the specification, the description isapplicable to any one of the similar components having the same firstreference label irrespective of the second reference label.

FIG. 1 illustrates a television programming distribution system, inaccordance with certain embodiments of the present disclosure.

FIG. 2 illustrates a functional diagram of a content splicing system, inaccordance with certain embodiments of the present disclosure.

FIG. 3 is a simplified illustration of a portion of the content splicingsubsystem with metadata augmentation features, in accordance withcertain embodiments of the present disclosure.

FIG. 4 illustrates a receiver that makes use of, interacts with, and/orat least partially includes the content splicing system, in accordancewith certain embodiments of the present disclosure.

FIG. 5 illustrates an embodiment of a computer system that may beincorporated as part of the described computerized devices, inaccordance with certain embodiments of the present disclosure.

DETAILED DESCRIPTION

The ensuing description provides preferred exemplary embodiment(s) only,and is not intended to limit the scope, applicability or configurationof the disclosure. Rather, the ensuing description of the preferredexemplary embodiment(s) will provide those skilled in the art with anenabling description for implementing a preferred exemplary embodimentof the disclosure. It should be understood that various changes may bemade in the function and arrangement of elements without departing fromthe spirit and scope of the disclosure as set forth in the appendedclaims.

Specific details are given in the following description to provide athorough understanding of the embodiments. However, it will beunderstood by one of ordinary skill in the art that the embodimentsmaybe practiced without these specific details. For example, circuitsmay be shown in block diagrams in order not to obscure the embodimentsin unnecessary detail. In other instances, well-known circuits,processes, algorithms, structures, and techniques may be shown withoutunnecessary detail in order to avoid obscuring the embodiments.

Also, it is noted that the embodiments may be described as a processwhich is depicted as a flowchart, a flow diagram, a data flow diagram, astructure diagram, or a block diagram. Although a flowchart may describethe operations as a sequential process, many of the operations can beperformed in parallel or concurrently. In addition, the order of theoperations may be rearranged. A process is terminated when itsoperations are completed, but could have additional steps not includedin the figure. A process may correspond to a method, a function, aprocedure, a subroutine, a subprogram, etc. When a process correspondsto a function, its termination corresponds to a return of the functionto the calling function or the main function.

Various embodiments will now be discussed in greater detail withreference to the accompanying figures, beginning with FIG. 1 .

FIG. 1 illustrates an embodiment of a television program distributionsystem 100. For brevity, system 100 is depicted in a simplified andconceptual form, and may generally include more or fewer systems,devices, networks, and/or other components as desired. Further, thenumber and types of features or elements incorporated within the system100 may or may not be implementation-specific, and at least some of theaspects of the system 100 may be similar to a cable televisiondistribution system, an IPTV (Internet Protocol Television) contentdistribution system, and/or any other type of media or contentdistribution system.

The system 100 may include television service provider system 102,satellite uplink 104, a plurality of orbiting (e.g., geosynchronous)satellites 106, satellite receiver 108, television receivers 110, one ormore contents sources 112 (e.g., online content sources), one or morecatch-up services 114, one or more subscription services 116, one ormore (other) television receivers 110-1, computing devices 116 a-d, andservice providers 122. In some embodiments, the television receiver 110may include a content splicing subsystem 111. Additionally oralternatively, the television service provider 102 may include a contentsplicing subsystem 111. Additionally or alternatively, one or moreservice providers 122 may include a content splicing subsystem 111. Thecontent splicing subsystem 111 may be configured to facilitate variouscontent splicing features in accordance with various embodimentsdisclosed herein.

The television service provider 102 may include one or moreparticularized content item repositories 176. The television serviceprovider 102 may store particularized content items in a repository 176.The one or more particularized content item repositories 176 may beimplemented in various ways. For example, one or more data processingsystems may store particularized content items. One or more relationalor object-oriented databases, or flat files on one or more computers ornetworked storage devices, may store particularized content items. Insome embodiments, a centralized system stores particularized contentitems; alternatively, a distributed/cloud system, network-based system,such as being implemented with a peer-to-peer network, or Internet, maystore particularized content items. In some embodiments, theparticularized content items may correspond to audiovisualadvertisements particularized to certain products and/or services. Insome embodiments, the advertisements may correspond to commercials to bepresented during commercial breaks of television programming.

The television service provider 102 may provide the particularizedcontent items to the television receiver 110 as part of a data transferthat is sent through the satellite 106. For example, in someembodiments, the television receiver 110 may receive a downlinkedsatellite signal that includes the data for the particularized contentitems transferred on a designated line in the vertical blanking interval(VBI) or other portion of the broadcast service transmission that doesnot interfere with other transmitted content. Additionally oralternatively, the television service provider 102 may provide theparticularized content items to the television receiver 110 via the oneor more data networks 120. The television receiver 110 may store theparticularized content items in a particularized content item repository176 included in the television receiver 110 or otherwise local to thetelevision receiver 110.

The television service provider system 102 and satellite transmitterequipment (which may include the satellite uplink 104) may be operatedby a television service provider. A television service provider maydistribute television channels, on-demand programing, programminginformation, and/or other services to users via satellite. Thetelevision service provider system 102 may receive feeds of one or moretelevision channels from various sources. Such television channels mayinclude multiple television channels that contain the same content (butmay be in different formats, such as high-definition andstandard-definition). To distribute such television channels to users,feeds of the television channels may be relayed to user equipment viaone or more satellites in the form of transponder streams. Satellitetransmitter equipment may be used to transmit a feed of one or moretelevision channels from the television service provider system 102 toone or more satellites 106. While a single television service providersystem 102 and satellite uplink 104 are illustrated as part of thetelevision distribution system 100, it should be understood thatmultiple instances of transmitter equipment may be used, possiblyscattered geographically to communicate with satellites 106. Suchmultiple instances of satellite transmitting equipment may communicatewith the same or with different satellites 106.

System 100 may include one or more networks 120 that can be used for abi-directional communication path for data transfer with televisionreceivers 110 and other components of system 100. The network 120 isintended to represent any number of terrestrial and/or non-terrestrialnetworks and/or network features. For example, network 120 mayincorporate or exhibit any number of features or elements of variouswireless and/or hardwired packet-based communication networks such as,for example, a WAN (Wide Area Network) network (e.g., the Internet), aHAN (Home Area Network) network, a LAN (Local Area Network) network(e.g., a corporate LAN), a WLAN (Wireless Local Area Network) network, acellular communications network, and/or any other type of communicationnetwork(s) configured such that data may be transferred between andamong respective elements of the example system 100.

The television receivers 110, as described throughout, may generally beany type of television receiver (such as an STB (set-top box), forexample) configured to decode signals received for output andpresentation via a display device 160. In another example, televisionreceiver 110 (which may include another remote television receiver, suchas a television receiver 110-1) may be integrated as part of or into atelevision, a DVR, a computing device, such as a tablet computingdevice, or any other computing system or device, as well as variationsthereof. In some embodiments, a television receiver 110 may be acomponent that is added into the display device 160, such as in the formof an expansion card. A television receiver 110 and network 120 togetherwith television receivers 110 and/or one or more computing devices 116,may form at least a portion of a particular home computing network, andmay each be respectively configured such as to enable communications inaccordance with any particular communication protocol(s) and/orstandard(s) including, for example, TCP/IP (Transmission ControlProtocol/Internet Protocol), DLNA/DTCP-IP (Digital Living NetworkAlliance/Digital Transmission Copy Protection over Internet Protocol),HDMI/HDCP (High-Definition Multimedia Interface/High-Bandwidth DigitalContent Protection), etc. While only a limited number of televisionreceivers 110, display devices 160, computing devices 116, etc. areillustrated in FIG. 1 , it should be understood that multiple (e.g.,tens, thousands, millions) instances of such equipment, corresponding tovarious users in various geolocations, may be included the system 100.

In some embodiments, broadcast television programs may be delivered totelevision receivers, including a television receiver 110, via satelliteaccording to a schedule. On-demand content may also be delivered to atelevision receiver 110 via satellite. Satellites 106 may be configuredto receive uplink signals 122 from satellite uplink 104. In thisexample, uplink signals 122 may contain one or more transponder streamsof particular data or content, such as particular television channels,each of which may be supplied by television service provider 102. Forexample, each of uplink signals 122 may contain various media contentsuch as HD (High Definition) television channels, SD (StandardDefinition) television channels, on-demand programming, programminginformation (e.g., table data), and/or any other content in the form ofat least one transponder stream, and in accordance with an allottedcarrier frequency and bandwidth. In this example, different mediacontent may be carried using different satellites of satellites 106.Further, different media content may be carried using differenttransponders of a particular satellite (e.g., satellite 106-1); thus,such media content may be transmitted at different frequencies and/ordifferent frequency ranges. For example, a first television channel anda second television channel may be carried on a first carrier frequencyover a first transponder (as part of a single transponder stream) ofsatellite 106-1, and a third, fourth, and fifth television channel maybe carried on a second carrier frequency (as part of another transponderstream) over a transponder of satellite 106-3, or, the third, fourth,and fifth television channel may be carried on a second carrierfrequency over a second transponder of satellite 106-1, etc.

The satellites 106 may be further configured to relay uplink signals 122to the satellite receiver 108 as downlink signals 124. Similar to theuplink signals 122, each of the downlink signals 124 may contain one ormore transponder streams of particular data or content, such as variousencoded and/or at least partially scrambled television channels,on-demand programming, etc., in accordance with an allotted carrierfrequency and bandwidth. The satellite receiver 108, which may include asatellite dish, a low noise block (LNB), and/or other components, may beprovided for use to receive television channels, such as on asubscription basis, distributed by the television service provider 102via the satellites 106. For example, the satellite receiver 108 may beconfigured to receive particular transponder streams as downlink signals124, from one or more of the satellites 106. Based at least in part onthe characteristics of a given television receiver 110 and/or satellitereceiver 108, it may only be possible to capture transponder streamsfrom a limited number of transponders of the satellites 106concurrently. For example, a tuner of the television receiver 110 mayonly be able to tune to a single transponder stream from a transponderof a single satellite, such as the satellite 106-1, at a time.

The television receiver 110, which may be communicatively coupled to thesatellite receiver 108, may subsequently select, via a tuner, decode,and relay television programming to a television for display thereon.Broadcast television programming or content may be presented “live,” orfrom a recording as previously stored on, by, or at the televisionreceiver 110. For example, an HD channel may be output to a televisionby the television receiver 110 in accordance with the HDMI/HDCP contentprotection technologies. Other embodiments are possible. For example, insome embodiments, an HD channel may be output to a television inaccordance with the MoCA® (Multimedia over Coax Alliance) homeentertainment networking standard. Other embodiments are possible.

The television receiver 110 may select via tuner, decode, and relayparticular transponder streams to one or more of television receivers110, which may in turn relay particular transponder streams to one ormore display devices 160, 160-1. For example, the satellite receiver 108and the television receiver 110 may, respectively, be configured toreceive, decode, and relay at least one television channel to atelevision by way of a television receiver 110. Similar to theabove-example, a television channel may generally be presented “live,”or from a recording as previously stored by the television receiver 110,and may be output to the display device 160, 160-1 by way of thetelevision receiver 110 in accordance with a particular contentprotection technology and/or networking standard. Other embodiments arepossible.

In various embodiments, the content resources 126 may be used to providethe television receiver 110 with content (e.g., television programming).The content resources 126 may be used to retrieve television programs orportions of television programs following and/or during a live broadcastof the television programs. The content resources 126 may include thetelevision service provider 102, the service providers 122, the onlinecontent sources 112, one or more other television receivers, and/or thelike.

The television service provider 102, which may distribute broadcasttelevision programming to the television receivers 110 via asatellite-based television programming distribution arrangement (or someother form of television programming distribution arrangement, such as acable-based network or IP-based network, may use an alternatecommunication path, such as via the network 120, to provide televisionprogramming to the television receivers 110. The television receivers110 may be permitted to request various television programs or portionsof television programs from the television service provider 102 via thenetwork 120. For instance, the television service provider 102 may bepermitted to transmit a portion of a television program or an entiretelevision program during and/or after a time at which the televisionprogram was broadcast live by the television service provider via asatellite-based television programming distribution arrangement.

In some embodiments, the television service provider 102 may provide atelevision program via on-demand content. On-demand content may beincluded in a user's subscription or may be provided on a per-requestbasis. Such on-demand content may be provided via the satellite-baseddistribution arrangement and/or via the network 120. If the on-demandversion of the television program requires payment of a fee, beforeproviding the television program to the television receiver 110, a userof the television receiver 110 may at least need to agree to payment ofthe fee. On-demand content provided via the satellite-based distributionarrangement may be stored locally by the television receiver 110 toallow on-demand access. On-demand content may also be retrieved via thenetwork 120 from the television service provider 102.

The computing devices 116 a-d represent various computerized devicesthat may be associated with a user of the television receiver 110 andthat may be configured to facilitate various content discovery featuresdisclosed in various embodiments herein. As indicated by 116 a, thecomputing devices 116 a-d may include a laptop computer, a desktopcomputer, a home server, or another similar form of computerized device.As indicated by 116 b and 116 c, the computing devices 116 a-d mayinclude a cellular phone and/or smartphone, a tablet computer, oranother similar form of mobile device. As indicated by 116 d, thecomputing devices 116 a-d may include smart glasses or another similarform of wearable computing device.

The television receiver 110 may be provided with access credentials thatallow access to content stored and/or accessible through one or more ofthe computing devices 116 a-d. It should be understood that computingdevices 116 a-d are exemplary in nature. Content may be accessiblethrough a fewer or greater number of computerized devices associatedwith a user of the television receiver 110.

In some embodiments, the online content sources 112 may representcontent resources through which television programs may be retrieved bythe television receiver 110 via the network 120. Television programmingavailable through the online content sources 112 may be available forfree and not require subscription (a username and/or password may or maynot be necessary). Each of the online content sources 112 may representdifferent websites available via the Internet. For example, sometelevision programming may be legally made available for free (such astelevision programming provided by government-funded sources, e.g., theBBC or Hulu®). Periodically, the television receiver 110 may poll onlinecontent sources 112 to determine which television programs are availableand/or which television programs are scheduled to be available in thefuture. In some embodiments, the television receiver 110 may poll onlinecontent sources 112 regarding the availability of at least a portion ofa specific television program.

FIG. 1 illustrates an example of a satellite-based television channeldistribution system. Again, it should be understood that at least someof the aspects of such a system may be similar to a cable televisiondistribution system, an IPTV content distribution system, and/or anyother type of media or content distribution system. For example, in acable television system, rather than using satellite transponders,multiple RF channels on a cable may be used to transmit streams oftelevision channels. As such, aspects detailed herein may be applicableto cable television distribution systems.

Thus, while network configuration data may be broadcast repeatedly viasatellite to television receivers, it should be understood that asimilar arrangement may be used in cable-based television programmingbroadcast networks to broadcast network configuration. For either typeof network, various other forms of data may be transmitted via anInternet-based network 120 connection rather than using the televisionservice provider's proprietary network. For instance, EPG data may betransmitted to television receivers via the network 120 (e.g., Internet)connection. As another example, firmware and/or software updates may betransmitted on demand to a television receiver via the Internet ratherthan the television receiver receiving the update via the televisionprogramming broadcast network.

FIG. 2 illustrates a functional diagram of a content splicing system200, in accordance with certain embodiments of the present disclosure.In certain embodiments, the content splicing system 200 may be includedin the television service provider system 102 and/or one or more otherservice providers 122. In certain embodiments, the content splicingsystem 200 may be separate from, and provide content to, the televisionservice provider system 102. In certain embodiments, the contentsplicing system 200 may be included in the end-user system and may beincluded in the television receiver 110. In certain embodiments, variousfeatures of the content splicing system 200 may be distributed betweenthe television receiver 110 and upstream of the television receiver 110.

As depicted, the content splicing system 200 includes a content splicingsubsystem 111. The content splicing subsystem 111 may include orotherwise correspond to an audiovisual control engine. The contentsplicing subsystem 111 may be communicatively coupled with interfacecomponents and communication channels (e.g., of the television receiver110, which may take various forms in various embodiments as disclosedherein) configured to receive programming content 202, which maycorrespond to movies, television programs, portions thereof, etc. Invarious embodiments, the programming content 202 may include audiovisualcontent broadcast and/or otherwise transmitted by the television serviceprovider 102 and/or one or more other service providers 122, and/or oneor more recordings of such content for later play-back. The programmingcontent 202 may include various components, including withoutlimitation, one or more video tracks, audio tracks, metadata tracks,close captioning information, and/or the like. In some embodiments, thecontent splicing system 200 may retain received programming content 202in one or more content repositories (not shown). The contentrepositories may include any suitable form of storage media, such as anysuitable form disclosed herein.

The content splicing subsystem 111 may be further configured to receiveparticularized content items 176(a). In some embodiments, the contentsplicing subsystem 111 may include a harvesting engine 236 configured toaggregate particularized content items 176(a) and/or programming content202 in order to facilitate content splicing features disclosed herein.In some embodiments, the harvesting engine 236 may be configured toreceive, pull, process, buffer, organize, rank, and/or storeparticularized content items 176(a) and/or programming content 202.

As disclosed above, in some embodiments, the particularized contentitems 176(a) may correspond to audiovisual advertisements particularizedto certain products and/or services. In some embodiments, theadvertisements may correspond to commercials to be presented duringcommercial breaks of television programming. In various embodiments, thecontent items 176(a) may include audiovisual content broadcast and/orotherwise transmitted by the television service provider 102 and/or oneor more other service providers 122. In some embodiments, particularizedcontent items 176(a) may be pushed by the television service provider102 and/or one or more other service providers 122 to the televisionreceiver 111. In addition or in alternative, particularized contentitems 176(a) may be pulled by the television receiver 111 (e.g., by theharvesting engine 236) from the television service provider 102 and/orone or more other service providers 122.

In some embodiments, sets of particularized content items 176(a) may betransmitted to the television receiver 111 in batches. For example, setsof particularized content items 176(a) may be transmitted to thetelevision receiver 111 on a periodic or otherwise scheduled basis. Insome embodiments, sets of particularized content items 176(a) may betransmitted to the television receiver 111 on an as-needed basis whenthe television receiver 111 is receiving programming content 202, isscheduled to receive programming content 202, and/or is predicted toreceive programming content 202 based at least in part on a detectedpattern of past viewing of previous programming content 202 at certaintimes and on certain days. In some embodiments, sets of particularizedcontent items 176(a) may be selected (e.g., by the service provider(s))for particular time periods and may be transmitted to the televisionreceiver 111 with an assignment (e.g., by way of tag data or othermetadata) for the designated time period. Additionally or alternatively,in some embodiments, sets of particularized content items 176(a) may beselected (e.g., by the service provider(s)) for particular channelsand/or television programs and may be transmitted to the televisionreceiver 111 with an assignment (e.g., by way of tag data or othermetadata) for the designated channel(s) and/or television program(s).

Additionally or alternatively, in some embodiments, sets ofparticularized content items 176(a) may be selected (e.g., by theservice provider(s)) as tailored for particular viewing habits andinferred interests of viewers. As disclosed in more detail herein, thetelevision receiver 110 (which may include a content matching engine 238in some embodiments) may determine color, acoustic, and/or dialoguecharacteristics and/or categories for content that the viewer actuallyviews. The television receiver 110 may push information indicating suchcharacteristics and/or categories to one or more service providers 102and/or 122. The service providers 102, 122 may select sets ofparticularized content items 176(a) matching the characteristics and/orcategories for transmission to the television receiver 110. Thetelevision receiver 110 may select from the sets of particularizedcontent items 176(a) as matching particular segments of programmingcontent 102 and, utilizing a content splicing engine 242 in someembodiments, may output the selected items 176(a) for display after theparticular segments.

As disclosed above, the content splicing subsystem 111 may include amatching engine 238 that may include logic to implement and/or otherwisefacilitate any taxonomy, classification, categorization, correlation,mapping, qualification, scoring, organization, and/or the like featuresdisclosed herein. In various embodiments, the matching engine 238 may beconfigured to analyze, classify, categorize, characterize, tag, and/orannotate particularized content items 176(a) and/or programming content202. The matching engine 238 may take the identified characteristics ofa given segment of programming content 202 as cues to select one or morecorresponding particularized content items 176(a) for the contentsplicing engine 242 to output for presentation after the segment ofprogramming content 202 (e.g., at a commercial break) to match orotherwise echo the identified characteristics of the programming content202. According to some embodiments, the matching engine 238 may employone or more artificial intelligence algorithms to perform patternmatching between the identified characteristics of the programmingcontent 202 and the particularized content items 176(a). For example, asdisclosed in further detail herein, the matching engine 238 may performa pattern match between the lighting, dialogue, and music of theprogramming content 202 and the particularized content items 176(a).When a close match is found, or where there are stronger pattern-matchesacross more categories, the particularized content items 176(a) with thestrongest match may be dynamically placed by the content splicing engine242 immediately after the scene, followed by the next particularizedcontent items 176(a) that most closely resembled the previousparticularized content items 176(a), and so on.

As one example use case out of many possibilities, say a viewer startswatching a programming content 202, and arrives at a scene just before acommercial break, where the scene ends with a particular dialogue,particular lighting, and a particular background music score. When themoment of the transition to the break arrives, the content splicingsubsystem 111 dynamically inserts a content item 176(a) which has one ora combination of a word or expression that was in the last dialogue ofthe previous scene, similar lighting to the previous scene, and/or asimilar background score to the previous scene. For example, say theviewer is watching programming content 202 where the scene just before acommercial break, ends with a dialogue from one of the characters whichgoes “Hello Jim, What a pleasant Surprise!” The content item 176(a)output for display immediately following this scene could be a creditcard commercial, where there is a surprise birthday party for the personin the commercial and his friends scream “Surprise!” Since there is anintersection between the scene and the commercial with the word“Surprise,” the transition is much more seamless.

Likewise, if there are three content items 176(a) and the programmingcontent 202, after all the content items 176(a), is going to begin witha dialogue where one of the characters says, “That was satisfying,” thecontent item 176(a) just before that could be for a candy bar where thetagline is, “You're just not the same when you're hungry.” Thetransition from “hungry” to “satisfied” makes the experience far moreseamless, thus avoiding a context-switching-break for the viewer. Asanother example, a similar transition could be done with light, where ifthe lighting of a scene is dim and yellow, the content item 176(a) to bedynamically inserted to follow the scene could be one that also hassimilarly dim lighting. Further, say a scene X of programming content202 before a break and a scene Y of programming content 202 after thebreak have completely different lighting arrangements, where the scene Xhas dim lighting and the scene Y has bright lighting. The content items176(a) output for display between the scenes X and Y could be selectedto have successively brighter lights so that the transition is moregradual than abrupt. Similarly, with background score, if a scene Xended with high-suspense music, the next content item 176(a) inserted toimmediately follow the scene X can be one that has a similar tone,tempo, and pitch. Such transitioning may be employed from one contentitem 176(a) to the next, where the seamless transition from one contentitem 176(a) to the next, based on dialogue, lighting, and/or backgroundscore is also optimized.

Accordingly, some embodiments of the content splicing subsystem 111(e.g., by way of the matching engine 238) may be configured to detectone or more color characteristics in particularized content items 176(a)and/or programming content 202. In various embodiments, the one or morecolor characteristic may include any one or combination of brightness,contrast, color temperature, tint, shade, colorfulness, chroma,intensity, saturation, and/or any suitable color characteristic for avideo sequence that may be measured. In some embodiments, the matchingengine 238 may include an image analyzer and handling module tofacilitate that detection.

By way of example, the matching engine 238 may detect one or more colorcharacteristics in particularized content items 176(a) and/orprogramming content 202 by way of any one or combination of pixelidentification, detecting color component values, detecting color codes,and/or the like. Various embodiments may take various sizes of samplesof the particularized content items 176(a) and/or programming content202. Thus, some embodiments may only analyze one or more portions of agiven particularized content item 176(a) and/or programming content 202.For example, some embodiments may only analyze a first portion of agiven particularized content item 176(a) (e.g., the first X number ofseconds of the content item according to presentation time), whereassome embodiments may analyze the entire particularized content item176(a). Likewise, some embodiments may only analyze an end portion of asegment of programming content 202 (e.g., the last X number of secondsof the segment according to presentation time prior to transition to acommercial break), whereas some embodiments may analyze the entiresegment of programming content 202. Additionally or alternatively, someembodiments may only analyze a beginning portion of a segment ofprogramming content 202 (e.g., the first X number of seconds of thesegment according to presentation time just after a commercial break).

Additionally or alternatively to temporal limitations on sample sizes,certain embodiments may employ frame type limitations on sample size. Asan example, while some embodiments may analyze all frames of aparticularized content items 176(a) and/or a segment of programmingcontent 202, other embodiments may only analyze base frames (e.g.,I-frames) and not delta frames (e.g., P-frames and B-frames).Conversely, some embodiments may only analyze delta frames (e.g.,P-frames and/or B-frames) and not base frames (e.g., I-frames). Someembodiments may dynamically determine whether to analyze base frames ordelta frames based at least in part on applying threshold to the amountof pixel changes corresponding to the delta frames. Hence, someembodiments may analyze delta frames only if the pixel changes of thedelta frames are extensive enough to satisfy the threshold (which maycorrespond to a pixel count and/or relative percentage with respect toentire frame). By way of example, some embodiments may analyze deltaframes only if the pixel changes of the delta frames correspond to atleast 33 percent of the frame.

Some embodiments may vary the extent of sampling for a particularizedcontent item 176(a) and/or a segment of programming content 202. Forexample, some embodiments may employ greater sampling upfront and lessersampling near the end of presentation of the particularized contentitems 176(a). For example, certain embodiments may sample all frames forthe first X seconds of the particularized content items 176(a), thendownshift to sampling only I-frames for the balance of theparticularized content items 176(a). Similarly, some embodiments maysample all I-frames for the first X seconds of the particularizedcontent items 176(a), then downshift to sampling only a subset ofI-frames for the balance of the particularized content items 176(a).Still other embodiments may employ greater sampling of an initialportion and an end portion of the particularized content items 176(a),while employing lesser or no sampling in the middle of the presentationof the particularized content items 176(a). Hence, some embodiments mayfocus sampling near transitions to and/or from particularized contentitems 176(a) to other content items (whether it is anotherparticularized content items 176(a) or the programming content 202).

Similarly, with respect to a segment of programming content 202, someembodiments may employ greater sampling closer to transition points(i.e., an end portion before a commercial break and/or an initialportion after a commercial break) and lesser sampling for portionsfurther the transition points. For example, certain embodiments maysample only I-frames for X seconds of the segment of programming content202 before a transition point, then upshift to sampling all frames forthe last Y seconds before the transition point. Likewise, certainembodiments may sample all frames for the first X seconds of the segmentof programming content 202 after a transition point, and then downshiftto sampling only I-frames for another Y seconds after that. Certainembodiments may employ greater sampling of an initial portion and an endportion of the segment of programming content 202, while employinglesser or no sampling in the middle of the presentation of the segmentof programming content 202.

Some embodiments may sample only portions of images, such as only partof a frame (which could, for example, be specified by identification ofpixel coordinates and ranges thereof to define areas of interest). Someembodiments may sample only a central portion of a frame. Otherembodiments may only sample a non-central portion, such as a borderportion of a frame. Some embodiments may start with one portion of aframe and only sample to an extent to satisfy a threshold. For example,the threshold could be certain percentage of the frame. Variousembodiments may apply different or the same sampling techniques toparticularized content items 176(a) and programming content 202.

The matching engine 238 may, in some embodiments, sum individual colorsdetected for a sample(s) of a given particularized content item 176(a)and/or programming content 202. The summing of the individual colors mayinclude summing counts (e.g., pixel counts) of instances of colorcomponent values, color codes, and/or the like. In some embodiments,similar color component values, color codes, etc., may be grouped, forexample, into color bands that encompass a range of similar colors withrelatively slight variations. Hence, multiple similar colors, and countsthereof, may be correlated to a category 212 for the similar colors, toresult in multiple color categories 212. In such embodiments, thesumming may include summing counts of instances of color componentvalues, color codes, and/or the like in certain such groupings.

Based at least in part on the summing, the matching engine 238 maycreate a color profile for a given particularized content item 176(a)and/or segment of programming content 202. The color profile could beretained in any suitable form, such as a file, a list, etc. The contentsplicing subsystem 111 may store color profiles mapped to particularizedcontent items 176(a) in the particularized content item repository 176.Similarly, in some embodiments, the content splicing subsystem 111 maystore color profiles mapped to segments of programming content 202 in aprocessed content repository (which could correspond to theparticularized content item repository 176 or a separate repository notshown). Each color profile may specify one or more dominant colorsand/or color categories 212 (i.e., groupings) as characteristics of theparticularized content item 176(a) and/or segment of programming content202. In some embodiments, determination of the dominant colors and/orcolor categories 212 may be based at least in part on relativepercentages with respect to all detected colors or color categories 212.In some embodiments, determination of the dominant colors and/or colorcategories 212 may be based at least in part on ranking the counts ofcolors and/or color categories 212. Selection of the dominant colorsand/or color categories 212 may include selecting one or more top-rankedcolors or color categories 212. Selection of one or more top-rankedcolors and/or color categories 212 may be based at least in part onapplying one or more thresholds to the summed color values and/or colorcategories 212. In some embodiments, a summed color and/or colorcategory 212 having a majority, simple majority, relative majority,plurality, or otherwise of the counts for a given sample may be selectedat the top-ranked color and/or color category. In various instances(e.g., when no color or color category 212 satisfies one of thosepredetermined thresholds of the counts for a given sample), multiplecolors and/or color categories 212 may be selected as the top-rankedcolors and/or color categories 212, with more colors and/or colorcategories 212 being selected the closer the counts are to one another.

Additionally or alternatively, the content splicing subsystem 111 (e.g.,by way of the matching engine 238) may be configured to detect one ormore audio characteristics in particularized content items 176(a) and/orprogramming content 202. The detection of audio characteristics mayallow for characterization and matching of the particularized contentitems 176(a) and/or programming content 202 based at least in part onmusical score and/or dialogue of the particularized content items 176(a)and/or programming content 202. In some embodiments, the matching engine238 may include an audio analyzer and handling module to facilitate thatdetection. By way of example, the matching engine 238 may detect one ormore audio characteristics in particularized content items 176(a) and/orprogramming content 202 by way of any one or combination of analyzingclosed captioning information, analyzing audio, applying voicerecognition, acoustic spectrum analysis, and/or the like.

In some embodiments, to detect the one or more audio characteristics,the matching engine 238 may analyze the sample that the matching engine238 analyzes for color characteristics. In some embodiments, thematching engine 238 may analyze a different size of sample than thatwhich it analyzes for color characteristics. For example, in someembodiments, the matching engine 238 may audio analyze a sample of Xseconds before or after a transition point, whereas the matching engine238 may color analyze a smaller sample of Y seconds before or after thetransition point. Thus, the audio sample could be longer and overlap thecolor sample in some embodiments, and vice versa in other embodiments.Further, color analysis may be employed when audio analysis is notemployed in some embodiments and vice versa in some embodiments. Forexample, one or both of color matching and audio matching may be appliedfor a transition to a commercial break, whereas a different one orcombination of color matching and audio matching may be applied for atransition at the end of the commercial break.

The matching engine 238 may, in some embodiments, analyze the audiotrack to identify characteristics of a musical score of the sample. Forexample, the acoustic analysis may include analyzing and identifying thesample for acoustic characteristics such as frequencies, intensities,tones, pitches, and/or the like metrics over time. The matching engine238 may select values of one or a combination of such acoustic metricsas distinctive markings and may compile the values as an acousticimpression for the purposes of characterizing the musical score of thesample. The acoustic impression may include a spectrum of frequencies insome embodiments. In some cases, the matching engine 238 may correlatethe acoustic impression to one or more acoustic categories 214 for thesimilar acoustic impressions. In various embodiments, the correlationmay be based at least in part on matching selected values of theacoustic metrics (e.g., distinctive values such as peaks, baselines,averages, etc.) to acoustic metric ranges of values specified forcertain acoustic categories 214. In some embodiments, the correlationmay be based at least in part on matching selected values of theacoustic metrics to acoustic fingerprints of particular songs which arecategorized as being in certain acoustic categories 214. Thus, someembodiments may identify particular songs and then an associatedcategory 214 such as genre, mood, popularity ranking, recency ofrelease, and/or the like. Additionally or alternatively, someembodiments may not identify particular songs (e.g., as a default or inparticular cases where a musical score is not identifiable, such as anad hoc musical score only for particular content), but may matchselected values of the acoustic metrics to certain acoustic categories214 of like acoustic metrics.

Based at least in part on the acoustic impression, the matching engine238 may create an acoustic profile for a given particularized contentitem 176(a) and/or segment of programming content 202. The acousticprofile may be retained in any suitable form, such as a file, a list,etc. The content splicing subsystem 111 may store acoustic profilesmapped to particularized content items 176(a) in the particularizedcontent item repository 176. Similarly, in some embodiments, the contentsplicing subsystem 111 may store acoustic profiles mapped to segments ofprogramming content 202 in the processed content repository. Eachacoustic profile may specify one or more selected values of acousticmetrics as distinctive markings and/or acoustic categories 214 ascharacteristics of the particularized content item 176(a) and/or segmentof programming content 202.

In various embodiments, the matching engine 238 may analyze the audiotracks metadata track, and/or close captioning information to identifydialogue as distinctive markings of the sample. The matching engine 238may identify one or more keywords and/or expressions in the dialogue asa dialogue impression for the purposes of characterizing the sample. Thematching engine 238 may compile the keywords and/or expressions of thesample and retain the keywords and/or expressions in the dialogueimpression. In some cases, the matching engine 238 may correlate thedialogue impression to one or more dialogue categories 216 for similardialogue impressions. In various embodiments, the correlation may bebased at least in part on matching selected keywords and/or expressionsto identical and/or similar keywords and/or expressions specified forcertain dialogue categories 216. The dialogue categories 216 may includecategorizations of concept, keyword, expression, mood, theme, emotion,and/or the like.

Based at least in part on the dialogue impression, the matching engine238 may create a dialogue profile for a given particularized contentitem 176(a) and/or segment of programming content 202. The dialogueprofile may be retained in any suitable form, such as a file, a list,etc. The content splicing subsystem 111 may store dialogue profilesmapped to particularized content items 176(a) in the particularizedcontent item repository 176. Similarly, in some embodiments, the contentsplicing subsystem 111 may store dialogue profiles mapped to segments ofprogramming content 202 in the processed content repository. Eachdialogue profile may specify one or more selected keywords and/orexpressions as distinctive markings and/or dialogue categories 216 ascharacteristics of the particularized content item 176(a) and/or segmentof programming content 202.

In some embodiments, the content splicing subsystem 111 may beconfigured to insert metadata into the data stream of programmingcontent 202 and/or into particularized content items 176(a). Someembodiments may include a metadata augmentation engine 240 to facilitatesuch features. The metadata augmentation engine 240, as with certainembodiments of the other engines, may include instructions retained in acomputer-readable media and to be executed by one or more processors.With some such embodiments, the metadata augmentation engine 240 may beupstream of a television receiver, for example, at a service provider102 or 112. Likewise, one or more of the other portions of the contentsplicing subsystem 111 may be upstream at a service provider. In otherembodiments, the one or more portions, or all, of the content splicingsubsystem 111 may be included in a television receiver 110.

FIG. 3 is a simplified illustration of a portion of the content splicingsubsystem 111-2 with metadata augmentation features, in accordance withcertain embodiments of the present disclosure. While not all componentsof subsystem 111-1 are shown in FIG. 3 , the content splicing subsystem111-2 may include one or a combination of such components. As disclosedabove, the content matching engine 238 may identify one or morecharacteristics and/or categories of the particularized content items176(a) and/or programming content 202. Based at least in part on suchidentification, the metadata augmentation engine 240 may create metadata208, which, in some embodiments, may correspond to tag data. Hence, themetadata augmentation engine 240 may process particularized contentitems 176(a) and/or programming content 202 and provide taggedparticularized content items 176(a)-1 and/or tagged programming content202-1.

The metadata augmentation engine 240 may include a metadata handler 208that may generate metadata 210 (e.g., one or more tags 210)corresponding to the characteristics and/or categories. In someembodiments, the metadata 210 may be inserted into the outputparticularized content items 176(a) and/or output programming content202. In some embodiments, the one or more tags 210 may not be insertedinto the particularized content items 176(a) and/or programming content202 but may be sent with the output particularized content items 176and/or output programming content 202. For example, metadataaugmentation engine 240 may assign packet identifiers to identify dataof the content that is to be transmitted as part of a data stream to atelevision receiver and that is to be associated with one or more tags.In any case, the content splicing subsystem 111-2 may outputmetadata-augmented particularized content items 176(a)-1 and/ormetadata-augmented programming content 202-1. In some embodiments, themetadata-augmented particularized content items 176(a)-1 and/ormetadata-augmented programming content 202-1 may be stored at leasttemporarily in one or more repositories 222. In some embodiments, tagdata may be stored at least temporarily in one or more repositories 222.

Data transmitted as part of a data stream to a television receiver maybe packetized and assigned packet identifiers. A particular packetidentifier may be associated with data packets related to tags forparticular segments of metadata-augmented particularized content items176(a)-1 and/or metadata-augmented programming content 202-1. Tag datamay include an indication of a period of time (or other measure of time,e.g., a number of frames), a start frame, an end frame, and/or the like.Tag data may include or otherwise be associated with a tag identifierand may include characteristic and/or category identifiers. For example,tag data may include any one or combination of color characteristicand/or category identifiers, acoustic characteristic and/or categoryidentifiers, dialogue characteristic and/or category identifiers, and/orthe like.

Thereafter, the matching engine 238 may be configured to matchparticularized content items 176(a)-1 to segments of programming content202-1 based at least in part on metadata at a service provider system orat client-side television receiver 110, in accordance with variousembodiments. For example, metadata may be extracted when or before agiven segment of programming content 202-1 is to be output for displayand before a transition point. The matching engine 238 may read themetadata mapped to the segment and perform a search of the repositories222-1 for particularized content items 176(a)-1 that also has metadatamatching the extracted metadata in one or more categories (dialogue,lighting, music), with the highest preference given to the ad that hasmetadata most closely matching the metadata of previous scene/segment.Accordingly, certain embodiments may facilitate matching ofparticularized content items 176(a) to segments of programming content202 based at least in part on metadata.

Referring again to FIG. 2 , in various embodiments utilizing suchmetadata or not utilizing such metadata, the matching engine 238 may beconfigured to identify one or more particularized content items 176(a)corresponding to the segments of programming content 202 based at leastin part on one or a combination of color characteristics, acousticcharacteristics, and/or dialogue characteristics. The matching engine238 may perform correlation based at least in part on correlation rules218 in some embodiments. The matching engine 238 may correlate the oneor more particularized content items 176(a) to the segments ofprogramming content 202 based at least in part on one or a combinationof such characteristics. In some embodiments, the correlation may bebased at least in part on the color profiles, acoustic profiles, and/ordialogue profiles of the particularized content items 176(a) and/orsegments of programming content 202. In some embodiments, thecorrelation may be based at least in part on color categories 212,acoustic categories 214, and/or dialogue categories 216 of theparticularized content items 176(a) and/or segments of programmingcontent 202.

The correlation rules 218 may include correlation criteria that couldinclude color specifications identified by any one or combination ofvalues and/or identifiers of color characteristics or components, rangesof the values or identifiers, specifications of complimentary range orgroupings, and/or like color correlation information. In addition or inalternative, the correlation rules 218 may include correlation criteriathat could include keywords identified by any one or combination ofwords, word stems, phrase, word groupings, and/or like keywordinformation. In addition or in alternative, the correlation rules 218may include correlation criteria that could include acousticspecifications identified by any one or combination of values and/oridentifiers of acoustic characteristics or components, ranges orgroupings of the values or identifiers, specifications of complimentaryrange or groupings, and/or like acoustic correlation information. Thecorrelation criteria could include weightings assigned to colorspecifications, dialogue specification, acoustic specifications, and/orthe like. Hence, within each color, acoustic, and/or dialogue bucket, acolor characteristic, keyword, and/or acoustic characteristic could beassigned a weight according to its significance. By way of example,brightness could be assigned a greater weight than contrast, acousticgenre could be assigned a greater weight than recency of release, andmore significant keywords could be assigned a greater weight than stopwords. Such buckets could be implemented in any suitable manner,including lists, tables, matrices, and/or the like. And within a bucket,characteristics and/or keywords could be organized in a rank orderand/or any hierarchical structure according to weight. Some embodimentsmay have characteristics and/or keywords organized according to decisiontree, with contingencies so that only certain combinations ofcharacteristics and/or keywords may be considered. For example, certaincharacteristics and/or keywords could only have significance if used inconjunction with other keywords, and/or not in conjunction with others.

In some embodiments, the matching engine 238 may employ a scoring systemto correlate the particularized content items 176(a) and/or segments ofprogramming content 202. Some embodiments may quantify correlations witha numerical expression, for example, a match score, with higher scoresbeing assigned to higher correlations of particularized content items176(a) with segments of programming content 202. Higher scores may beassigned for greater extents of matching. For example, a match of threetop-ranked colors and/or color categories 212 of the particularizedcontent items 176(a) and programming content 202 may be assigned ahigher score than a match of only one top-ranked color and/or colorcategory 212. As another example, an exact match of colors and/or colorcategories 212 may be assigned a higher score than a complimentary match(e.g., where absent an exact match, one color and/or color category 212is defined as a complement to another color and/or color category 212).Hence, closeness of matching may be a basis for scoring.

Likewise, such examples may apply to dialogue correlation. For example,a match of three dialogue cues or dialogue categories 216 of theparticularized content items 176(a) and programming content 202 may beassigned a higher score than a match of only one top dialogue cue and/ordialogue category 216. As another example, an exact match of words,expressions, and/or dialogue categories 216 may be assigned a higherscore than a complimentary match (e.g., where absent an exact match, aword, expression, and/or dialogue category 216 is defined as acomplement to another a word, expression, and/or dialogue category 216).Further, in like manner, such examples may apply to acoustic correlationwith acoustic characteristics and/or categories 214.

Further, various embodiments may accord different weights to colorcorrelation, acoustic correlation, and/or dialogue correlation. By wayof example, some embodiments may accord a greater weight to colorcorrelation than to acoustic correlation, and greater weight to acousticcorrelation than to dialogue correlation. A high correlation may beidentified using any suitable qualification scheme (e.g., a scorethreshold, a score ranking, etc.). Some contingencies could beimplemented so that only a threshold correlation needs be identified.For example, if a sufficiently close match is found on the basis of onebucket (e.g., color correlation) to meet the threshold, the matchingparticularized content item 176(a) may be selected. But, if asufficiently close match is found on that basis, one or more of thebuckets may be used as a basis to identify a stronger pattern match. Insome embodiments, a set of particularized content items 176(a) may beranked according to correlation such that the strongest matching contentitem 176(a) is ranked highest, and the ranked set may be selected forpresentation in the ranked order after the matched segment ofprogramming content 202. In other embodiments, only the strongestmatching content item 176(a) may be selected for presentation in theranked order after the segment of programming content 202, and a secondcontent item 176(a) may be selected on as a match to the strongestmatching content item 176(a). Thus, subsequent content items 176(a)could be serially matched with previously selected content items 176(a).

In some embodiments, the content splicing engine 242 may include amultiplexer. The multiplexer may create a digital stream of data packetscontaining the video, audio, and, in some embodiments, the metadata tooutput the programming content 202 and the selected particularizedcontent items 176(a). In embodiments where the content splicing engine242 is implemented at the service provider system 102, the multiplexeddata stream may be transmitted on a particular transponder stream via atransponder of a satellite. The multiplexer may create a digital streamof data packets containing the video, audio, and entitlement controlmessages (ECMs), to be transmitted on the transponder data stream. Thedata stream, which includes video and/or audio data packets that are notscrambled, may be passed to a scrambling engine, which may use a controlword to scramble video or audio present in a data packet. Some audio andvideo packets may also pass through with no scrambling, if desired bythe television service provider 102. A control word generator maygenerate the control word that is used by a scrambling engine toscramble the video or audio present in the data packet. Control wordsgenerated by the control word generator may be passed to a securitysystem, which may be operated by the television service provider or by athird-party security provider. The control words generated by controlword generator may be used by security system to generate an ECM. EachECM may indicate two control words. The control words indicated may bethe current control word being used to scramble video and audio, and thecontrol word that will next be used to scramble video and audio. Thesecurity system may output an ECM to the multiplexer for transmission tosubscribers' set-top boxes. Each data packet, whether it contains audio,video, an ECM, or some other form of data, may be associated with aparticular PID. This PID may be used by the set-top box in combinationwith a networking information table to determine which televisionchannel the data contained within the data packet corresponds.Accordingly, the transponder data streams may contain scrambled videopacket stream and audio packet stream and also an encrypted ECM packetstream which contains the control words necessary to descramble thescrambled video and audio packets.

FIG. 4 illustrates a receiver 400 that makes use of, interacts with,and/or at least partially includes the content splicing system 200, inaccordance with certain embodiments of the present disclosure. Certainembodiments of the receiver 400 may include set top boxes (STBs),television receivers, and over-the-top receivers. In some embodiments,the receiver 400 may correspond to the television receiver 110. Invarious embodiments, in addition to being in the form of a STB, areceiver may be incorporated as part of another device, such as atelevision or other form of display device, such as a computer,smartphone, tablet, or other handheld portable electronic device. Forexample, a television may have an integrated receiver (which does notinvolve an external STB being coupled with the television). One or acombination of the content harvesting engine 236-1, the content matchingengine 238-1, content augmentation engine 240-1, and/or content splicingengine 242-1 may be provided in conjunction with content harvestingmodule 236-2, the content matching module 238-2, content augmentationmodule 240-2, and/or content splicing module 242-2 to implement variousfunctionalities of the content splicing subsystem 111 into the receiver400.

The receiver 400 may represent receiver 110 of FIG. 1 and may be in theform of a STB that communicates with a display device such as atelevision. The receiver 400 may be incorporated as part of atelevision, such as the display device 160 of FIG. 1 or television 400of FIG. 4 , etc. The receiver 400 may include: processors 410 (which mayinclude control processor 410-1, tuning management processor 410-2, andpossibly additional processors), tuners 415, network interface 420,non-transitory computer-readable storage medium 425, electronicprogramming guide (EPG) database 430, networking information table (NIT)440, digital video recorder (DVR) database 445, on-demand programming427, content store 222-3, user interface 450, decryption device 460,decoder module 433, interface 435, and/or descrambling engine 465. Inother embodiments of receiver 400, fewer or greater numbers ofcomponents may be present. It should be understood that the variouscomponents of receiver 400 may be implemented using hardware, firmware,software, and/or some combination thereof. Functionality of componentsmay be combined; for example, functions of descrambling engine 465 maybe performed by tuning management processor 410-2. Further,functionality of components may be spread among additional components;for example, PID filters 455 may be handled by separate hardware fromprogram map table 457. The receiver 400 may be in data communicationwith service providers, such as by way of network interface 420.

The processors 410 may include those configured to perform processessuch as tuning to a particular channel, accessing and displaying EPGinformation from the EPG database 430, and/or receiving and processinginput from a user. For example, the processors 410 may include one ormore processors dedicated to decoding video signals from a particularformat, such as MPEG, for output and display on a television and forperforming decryption, if required. It should be understood that thefunctions performed by various modules of FIG. 4 may be performed usingone or more processors. As such, for example, functions of thedescrambling engine 465 may be performed by the control processor 410-1.

The control processor 410-1 may communicate with tuning managementprocessor 410-2. The control processor 410-1 may control the recordingof television channels based at least in part on timers stored in theDVR database 445. The control processor 410-1 may also provide commandsto the tuning management processor 410-2 when recording of a televisionchannel is to cease. In addition to providing commands relating to therecording of television channels, the control processor 410-1 mayprovide commands to the tuning management processor 410-2 that indicatetelevision channels to be output to the decoder module 433 for output toa display device. The control processor 410-1 may also communicate withthe network interface 420 and the user interface 450. The controlprocessor 410-1 may handle incoming data from network interface 420,including network transport streams received from over-the-top serviceproviders. The control processor 410-1 may handle incoming data from thenetwork interface 420, including network transport streams received fromthe user interface 450, which may include user input received by way ofone or more human interface devices. Additionally, the control processor410-1 may be configured to output data via the network interface 420.The control processor 410 may also be configured to perform image andaudio analysis, such as to identify contextual aspects present in anaudio or video stream, for example facial recognition or voicerecognition.

The tuners 415 may include one or more tuners used to tune totransponders that include broadcasts of one or more television channelsthat may be received from a satellite or cable system, for example. Inthe illustrated embodiment of receiver 400, three tuners are present(tuner 415-1, tuner 415-2, and tuner 415-3). In other embodiments, twoor more than three tuners may be present, such as four, six, or eighttuners. Each tuner contained in the tuners 415 may be capable ofreceiving and processing a single transponder stream from a satellitetransponder at a given time, for example. As such, a single tuner maytune to a single transponder stream at a given time. If the tuners 415include multiple tuners, one tuner may be used to tune to a televisionchannel on a first transponder stream for display using a television,while another tuner may be used to tune to a television channel on asecond transponder for recording and viewing at some other time. Ifmultiple television channels transmitted on the same transponder streamare desired, a single tuner of the tuners 415 may be used to receive thesignal containing the multiple television channels for presentationand/or recording. The tuners 415 may receive commands from the tuningmanagement processor 410-2. Such commands may instruct the tuners 415which frequencies are to be used for tuning.

The network interface 420 may be used to communicate via an alternatecommunication channel with a television service provider, if suchcommunication channel is available. The primary communication channelmay be via satellite (which may be unidirectional to the receiver 400)and the alternate communication channel (which may be bidirectional) maybe via a network, such as the Internet. Referring back to FIG. 1 ,receiver 110 may be able to communicate with television service providersystem 102 via a network 120, such as the Internet. This communicationmay be bidirectional: data may be transmitted from the receiver 110 tothe television service provider system 102 and from the televisionservice provider system 102 to the receiver 110. Referring back to FIG.4 , the network interface 420 may be configured to communicate via oneor more networks, such as the Internet, to communicate with televisionservice provider system 102 of FIG. 1 . Other information may betransmitted and/or received via the network interface 420 such asparticularized content items 176(a), information indicative of contentcharacteristics and/or categories, and/or the like.

The storage medium 425 may represent one or more non-transitorycomputer-readable storage mediums. The storage medium 425 may includememory and/or a hard drive. The storage medium 425 may be used to storeinformation received from one or more satellites and/or informationreceived via the network interface 420. The storage medium 425 may storeinformation related to the EPG database 430, augmentation module 432 andrelated preferences, other non-video/audio data 431, DVR database 445,commercial database 446, and/or on-demand programming 427. Recordedtelevision programs may be stored using the storage medium 425 as partof the DVR database 445. The storage medium 425 may be partitioned orotherwise divided (such as into folders) such that predefined amounts ofthe storage medium 425 are devoted to storage of television programsrecorded due to user-defined timers and stored television programsrecorded due to provider-defined timers.

The EPG database 430 may store information related to televisionchannels and the timing of programs appearing on such televisionchannels. The EPG database 430 may be stored using the storage medium425, which may be a hard drive. Information from the EPG database 430may be used to inform users of what television channels or programs arepopular and/or provide recommendations to the user. Information from theEPG database 430 may provide the user with a visual interface displayedby a television that allows a user to browse and select televisionchannels and/or television programs for viewing and/or recording.Information used to populate the EPG database 430 may be received viathe network interface 420 and/or via satellites, such as the satellite106 of FIG. 1 via the tuners 415. For instance, updates to the EPGdatabase 430 may be received periodically via satellite. The EPGdatabase 430 may serve as an interface for a user to control DVRfunctions of the receiver 400, and/or to enable viewing and/or recordingof multiple television channels simultaneously. Information from EPGdatabase 430 may be output as a video stream to a display device. Aparticular user may issue commands indicating that an EPG interface bepresented. A user issuing a command that an EPG be displayed mayconstitute a change command. In some embodiments, particularized contentitems 176(a) may be selected, based at least in part on characteristicsand/or categories of the last content viewed/presented, and presented inconjunction with the EPG. For example, particularized content items176(a) could pertain to recommendations of programming (e.g., previews)and/or commercial advertisements. Hence, seamless transitioning featuresmay extend to EPG views in some embodiments.

The network information table (NIT) 440 may store information used bythe receiver 400 to access various television channels. The NIT 440 maybe stored locally by a processor, such as the tuning managementprocessor 410-2 and/or by the storage medium 425. Information used topopulate the NIT 440 may be received via satellite (or cable) throughthe tuners 415, may be received via the network interface 420, such asfrom the television service provider. As such, information present inthe NIT 440 may be periodically updated. In some embodiments, NIT 440may be locally-stored by the receiver 400 using the storage medium 425.Generally, the NIT 440 may store information about a service providernetwork, such as a satellite-based service provider network. Informationthat may be present in the NIT 440 may include: television channelnumbers, satellite identifiers (which may be used to ensure differentsatellites are tuned to for reception of desired television channels),frequency identifiers, transponder identifiers for various televisionchannels, antenna identifiers (which may be used to ensure differentantennas are tuned to for reception of desired television channels),radio frequency identifiers, and/or subchannel identifiers for varioustelevision channels. In some embodiments, the NIT 440 may containadditional data or additional tables may be stored by the receiver. Forexample, while specific audio PIDs and video PIDs may not be present inthe NIT 440, a channel identifier may be present within the NIT 440which may be used to look up the audio PIDs and video PIDs in anothertable, such as a program map table (PMT). In some embodiments, a PIDassociated with the data for the PMT is indicated in a separate table,program association table (PAT), which is not illustrated in FIG. 4 . APAT may be stored by the receiver in a similar manner to the NIT. Forexample, a PMT may store information on audio PIDs, and/or video PIDs. APMT stores data on ECM (entitlement control message) PIDs for televisionchannels that are transmitted on a transponder stream, transport stream,or digital broadcast. If, for a first television channel, multipletelevision channels are to be tuned to, the NIT 440 and/or the PMT 457may indicate a second television channel that is to be tuned to when afirst channel is tuned to; this may allow for switching to output of thesecond television channel for different commercials, for example.

A table, such as the NIT, PAT, or PMT may store indications of PIDs thatare related to supplemental audio content for individual channels orother forms of content. For instance, each television channel may beassociated with a different supplemental audio PID. If supplementalaudio content is to be transmitted for a given television channel,packets containing the supplemental audio are transmitted to thereceiver having its associated supplemental audio content PID. This PIDcould be distinct from any of the audio programs of the televisionprogramming (e.g., the first audio program, second audio program (SAP),actual descriptive audio). In some embodiments, supplemental audiocontent is transmitted using the same transponder stream as thetelevision channel or content to which the supplemental audio contentcorresponds. In some embodiments, a single supplemental audio PID isused to identify supplemental audio for multiple television channels,such as all the television channels on a given transponder. A secondidentifier present within the supplemental audio data may be used todistinguish for which television channel the supplemental audio datacorresponds.

Based at least in part on information in the NIT, it may be possible todetermine the proper satellite and transponder to which to tune for aparticular television channel, or to determine the proper antenna andfrequency to which to tune to for a particular television channel. Insome embodiments, the NIT may list a particular frequency to which totune for a particular television channel. Once tuned to the propersatellite/transponder/antenna/frequency, the PMT PID may be used toretrieve a program map table that indicates the PIDs for audio and videostreams of television channels transmitted by that transponder.

While a large portion of storage space of the storage medium 425 may bedevoted to storage of television programming, a portion may be devotedto storage of non-audio/video data, such as the EPG database 430 andother non-video/audio data 431. This “other” data may permit thereceiver 400 to function properly. In some embodiments, at least tengigabytes are allocated to such other data. For example, if the NIT 440is stored by the storage medium 425, it may be part of the othernon-video/audio data 431.

The decoder module 433 may serve to convert encoded video and audio intoa format suitable for output to a display device. For instance, thedecoder module 433 may receive MPEG video and audio from the storagemedium 425, the network interface 420, or the descrambling engine 465 tobe output to a television. MPEG video and audio from the storage medium425 may have been recorded to the DVR database 445 as part of apreviously-recorded television program. The decoder module 433 mayconvert the MPEG video and audio into a format appropriate to bedisplayed by a television or other form of display device and audio intoa format appropriate to be output from speakers, respectively. Thedecoder module 433 may have the ability to convert a finite number oftelevision channel streams received from the storage medium 425, thenetwork interface 420, or the descrambling engine 465 simultaneously.For instance, each of the decoders 434 within the decoder module 433 maybe able to only decode a single television channel at a time.

While a television channel is being decoded by a decoder of the decoders434, the television channel is not necessarily output to a displaydevice via the television interface 435. For instance, a televisionchannel may be decoded but not output to allow for seamless ornear-seamless switching to the television channel when output isdesired. For example, if a second television channel is to be output forpresentation during commercial breaks on a first television channel, thesecond television channel and the first television channel may each becontinuously decoded by different decoders of the decoder module 433 toallow for fast switching between the channels. Without a televisionchannel being continuously decoded, fast switching may be difficult dueat least in part to the format in which the channel is encoded. Forinstance, for MPEG encoding, it may be necessary to first decode anI-frame before certain subsequent (or earlier) received frames may beproperly decoded. The output of the decoder, which is provided to thetelevision interface 435, may be controlled by the control processor410-1, or some other processor. While the decoder module 433 isillustrated as having three decoders 434 (decoder 434-1, decoder 434-2,and decoder 434-3), in other embodiments, a greater or fewer number ofdecoders may be present in the receiver 400.

The television interface 435 may serve to output a signal to atelevision (or another form of display device) in a proper format fordisplay of video and playback of audio. As such, the televisioninterface 435 may output one or more television channels, storedtelevision programming from the storage medium 425 (e.g., televisionprograms from the DVR database 445, television programs from on-demandprogramming 427 and/or information from the EPG database 430) to atelevision for presentation.

Digital Video Recorder (DVR) functionality may permit a televisionchannel to be recorded for a period of time. DVR functionality of thereceiver 400 may be managed by the control processor 410-1. The controlprocessor 410-1 may coordinate the television channel, start time, andstop time of when recording of a television channel is to occur. Invarious embodiments, particularized content items 176(a) could beselected and inserted into the presentation stream prior to recording,during recording, and/or upon playback of the recording. The DVRdatabase 445 may store information related to the recording oftelevision channels. The DVR database 445 may store timers that are usedby the control processor 410-1 to determine when a television channelshould be tuned to and its programs recorded to the DVR database 445 ofstorage medium 425. In some embodiments, a limited amount of the storagemedium 425 may be devoted to the DVR database 445. Timers may be set bythe television service provider and/or one or more users of the receiver400.

User profiles may also be stored in the storage medium 445 and mayinclude stored user preferences that may be inferred by the televisionreceiver 400 based at least in part on viewing history. The televisionreceiver 400 may communicate user profile information to the serviceprovider 102, 122 to request particularized content items 176(a)tailored to the inferred user preferences made with respect to augmentedcontent in accordance with certain embodiments disclosed herein. Theuser profiles may include profiles for multiple users or may include asingle profile for the television receiver in general. In someembodiments, the user profiles may include preferences for customizedcontent presentation adjustments disclosed herein. The preferences couldinclude customized viewing interests, such as programming content,advertising content, product content, and/or the like that correspondsto augmented content selections relating to recognized actors and/orproducts. The user profiles may further include user feedback, viauser-selectable options, received from the user regardingcustomizations. The feedback data may be used to refine thecustomizations for particular viewers and types of contentcustomizations.

The on-demand programming 427 may represent additional televisionprogramming stored by the storage medium 425. The on-demand programming427 may include television programming that was not recorded to thestorage medium 425 via a timer (either user- or provider-defined).Rather, on-demand programming is programming provided to the receiverdirectly for storage by the receiver and for later presentation to oneor more users. In various embodiments, particularized content items176(a) could be selected and inserted into the presentation stream priorto or upon playback of the recording.

The user interface 450 may include a remote control (physically separatefrom the receiver 400) and/or one or more buttons on the receiver 400that allow a user to interact with the receiver 400. The user interface450 may be used to select a television channel for viewing, viewinformation from the EPG database 430, and/or program a timer stored toDVR database 445, wherein the timer is used to control the DVRfunctionality of the control processor 410-1. The user interface 450 mayalso be used to transmit commands to the receiver 400 and make userselections to customize user preferences.

Referring back to the tuners 415, television channels received viasatellite (or cable) may contain at least some scrambled data. Packetsof audio and video may be scrambled to prevent unauthorized users (e.g.,nonsubscribers) from receiving television programming without paying thetelevision service provider. When a tuner of the tuners 415 is receivingdata from a particular transponder of a satellite, the transponderstream may be a series of data packets corresponding to multipletelevision channels. Each data packet may contain a packet identifier(PID), which, in combination with the NIT 440 and/or the PMT 457, may bedetermined to be associated with a particular television channel.Particular data packets, referred to as entitlement control messages(ECMs), may be periodically transmitted. ECMs may be associated withanother PID and may be encrypted; the receiver 400 may use thedecryption device 460 to decrypt ECMs. Decryption of an ECM may only bepossible if the user has authorization to access the particulartelevision channel associated with the ECM. When an ECM is determined tocorrespond to a television channel being stored and/or displayed, theECM may be provided to the decryption device 460 for decryption.

The decryption device 460 may be a removable or non-removable smartcard. When the decryption device 460 receives an encrypted ECM, thedecryption device 460 may decrypt the ECM to obtain some number ofcontrol words. In some embodiments, from each ECM received by thedecryption device 460, two control words are obtained. In someembodiments, when the decryption device 460 receives an ECM, it comparesthe ECM to the previously received ECM. If the two ECMs match, thesecond ECM is not decrypted because the same control words would beobtained. In other embodiments, each ECM received by the decryptiondevice 460 is decrypted; however, if a second ECM matches a first ECM,the outputted control words will match; thus, effectively, the secondECM does not affect the control words output by the decryption device460. The decryption device 460 may be permanently part of the receiver400 or may be configured to be inserted and removed from the receiver400. In some embodiments, the control processor 410-1, the tuningmanagement processor 410-2, or other hardware may be able to determinethat a received ECM has not changed from the previous iteration, andtherefore not provide the repeated ECM to the smart card, since the samecontrol word(s) will be obtained.

The tuning management processor 410-2 may be in communication with thetuners 415 and the control processor 410-1. The tuning managementprocessor 410-2 may be configured to receive commands from the controlprocessor 410-1. Such commands may indicate when to start/stop recordinga television channel and/or when to start/stop causing a televisionchannel to be output to a television. The tuning management processor410-2 may control the tuners 415. From the tuners 415, the tuningmanagement processor 410-2 may receive transponder streams of packetizeddata. From the network interface 420, the tuning management processor410-2 may receive network transport stream of packetized data. Aspreviously detailed, some or all of these packets may include a PID thatidentifies the content of the packet.

The tuning management processor 410-2 may be configured to create one ormore PID filters 455 that sort packets received from the tuners 415and/or the network interface 420 based at least in part on the PIDs.When a tuner is initially tuned to a particular frequency (e.g., to aparticular transponder of a satellite), a PID filter may be createdbased at least in part on the PMT data. The PID created, based at leastin part on the PMT data packets, may be known because it is stored aspart of the NIT 440 or another table, such as a program associationtable (PAT). From the PMT data packets, PMT may be constructed by thetuning management processor 410-2.

The PID filters 455 may be configured to filter data packets based atleast in part on PIDs. In some embodiments, the PID filters 455 arecreated and executed by the tuning management processor 410-2. For eachtelevision channel to be output for presentation or recorded, a separatePID filter may be configured. In other embodiments, separate hardwaremay be used to create and execute such PID filters. Depending on atelevision channel selected for recording/viewing, a PID filter may becreated to filter: (1) the video packets associated with the televisionchannel; (2) the audio packets associated with the television channel;and (3), if enabled, supplemental audio content for use in conjunctionwith interactive content. The PMT 457 may store the particularassignments of PIDs for individual television channels. For example, ifa transponder data stream includes multiple television channels, datapackets corresponding to a television channel that is not desired to bestored or displayed by the user may be ignored by the PID filters 455and not routed to the descrambling engine 465, the decryption device460, or the control processor 410-1. As such, only data packetscorresponding to the one or more television channels desired to bestored and/or displayed may be filtered and passed to either thedescrambling engine 465 or the decryption device 460; other data packetsmay be ignored. For each television channel, a stream of video packets,a stream of audio packets (one or both of the audio programs), a streamof supplemental audio content, and/or a stream of ECM packets may bepresent, each stream identified by a PID. In some embodiments, a commonECM stream may be used for multiple television channels. Additional datapackets corresponding to other information, such as updates to the NIT440, may be appropriately routed by the PID filters 455. At a giventime, one or multiple PID filters may be executed by the tuningmanagement processor 410-2.

The descrambling engine 465 may use the control words output by thedecryption device 460 in order to descramble video and/or audiocorresponding to television channels for storage and/or presentation.Video and/or audio data contained in the transponder data streamreceived by the tuners 415 may be scrambled. Video and/or audio data maybe descrambled by the descrambling engine 465 using a particular controlword. Which control word output by the decryption device 460 to be usedfor successful descrambling may be indicated by a scramble controlidentifier present within the data packet containing the scrambled videoor audio. Descrambled video and/or audio may be output by thedescrambling engine 465 to the storage medium 425 for storage (in theDVR database 445) and/or to the decoder module 433 for output to atelevision or other presentation equipment via the television interface435.

For simplicity, the receiver 400 of FIG. 4 has been reduced to a blockdiagram; commonly known parts, such as a power supply, have beenomitted. Further, some routing between the various modules of thereceiver 400 has been illustrated. Such illustrations are for exemplarypurposes only. The state of two modules not being directly or indirectlyconnected does not indicate the modules cannot communicate. Rather,connections between modules of the receiver 400 are intended only toindicate possible common data routing. It should be understood that themodules of the receiver 400 may be combined into a fewer number ofmodules or divided into a greater number of modules.

Further, the components of the television receiver 400 may be part ofanother device, such as built into a television. The television receiver400 may include one or more instances of various computerizedcomponents, such as disclosed in relation to computer systems disclosedfurther herein. While the television receiver 400 has been illustratedas a satellite receiver, it is to be appreciated that techniques belowmay be implemented in other types of television receiving devices, suchas cable receivers, terrestrial receivers, IPTV receivers or the like.In some embodiments, the television receiver 400 may be configured as ahybrid receiving device, capable of receiving content from disparatecommunication networks, such as satellite and terrestrial televisionbroadcasts. In some embodiments, the tuners may be in the form ofnetwork interfaces capable of receiving content from designated networklocations.

A computer system as illustrated in FIG. 5 may be incorporated as partof the previously described computerized devices, such as a televisionreceiver or television service provider system. FIG. 5 provides aschematic illustration of one embodiment of a computer system 500 thatcan perform various steps of the methods provided by variousembodiments. It should be noted that FIG. 5 is meant only to provide ageneralized illustration of various components, any or all of which maybe utilized as appropriate. FIG. 5 , therefore, broadly illustrates howindividual system elements may be implemented in a relatively separatedor relatively more integrated manner.

The computer system 500 is shown comprising hardware elements that canbe electrically coupled via a bus 505 (or may otherwise be incommunication, as appropriate). The hardware elements may include one ormore processors 510, including without limitation one or moregeneral-purpose processors and/or one or more special-purpose processors(such as digital signal processing chips, graphics accelerationprocessors, video decoders, and/or the like); one or more input devices515, which can include without limitation a mouse, a keyboard, remotecontrol, and/or the like; and one or more output devices 520, which caninclude without limitation a display device, a printer, and/or the like.

The computer system 500 may further include (and/or be in communicationwith) one or more non-transitory storage devices 525, which cancomprise, without limitation, local and/or network accessible storage,and/or can include, without limitation, a disk drive, a drive array, anoptical storage device, a solid-state storage device, such as a randomaccess memory (“RAM”), and/or a read-only memory (“ROM”), which can beprogrammable, flash-updateable and/or the like. Such storage devices maybe configured to implement any appropriate data stores, includingwithout limitation, various file systems, database structures, and/orthe like.

The computer system 500 might also include a communications subsystem530, which can include without limitation a modem, a network card(wireless or wired), an infrared communication device, a wirelesscommunication device, and/or a chipset (such as a Bluetooth™ device, an802.11 device, a Wi-Fi device, a WiMAX device, cellular communicationdevice, etc.), and/or the like. The communications subsystem 530 maypermit data to be exchanged with a network (such as the networkdescribed below, to name one example), other computer systems, and/orany other devices described herein. In many embodiments, the computersystem 500 will further comprise a working memory 535, which can includea RAM or ROM device, as described above.

The computer system 500 also can comprise software elements, shown asbeing currently located within the working memory 535, including anoperating system 540, device drivers, executable libraries, and/or othercode, such as one or more application programs 545, which may comprisecomputer programs provided by various embodiments, and/or may bedesigned to implement methods, and/or configure systems, provided byother embodiments, as described herein. Merely by way of example, one ormore procedures described with respect to the method(s) discussed abovemight be implemented as code and/or instructions executable by acomputer (and/or a processor within a computer); in an aspect, then,such code and/or instructions can be used to configure and/or adapt ageneral purpose computer (or other device) to perform one or moreoperations in accordance with the described methods.

A set of these instructions and/or code might be stored on anon-transitory computer-readable storage medium, such as thenon-transitory storage device(s) 525 described above. In some cases, thestorage medium might be incorporated within a computer system, such ascomputer system 500. In other embodiments, the storage medium might beseparate from a computer system (e.g., a removable medium, such as acompact disc), and/or provided in an installation package, such that thestorage medium can be used to program, configure, and/or adapt a generalpurpose computer with the instructions/code stored thereon. Theseinstructions might take the form of executable code, which is executableby the computer system 500 and/or might take the form of source and/orinstallable code, which, upon compilation and/or installation on thecomputer system 500 (e.g., using any of a variety of generally availablecompilers, installation programs, compression/decompression utilities,etc.), then takes the form of executable code.

It will be apparent to those skilled in the art that substantialvariations may be made in accordance with specific requirements. Forexample, customized hardware might also be used, and/or particularelements might be implemented in hardware, software (including portablesoftware, such as applets, etc.), or both. Further, connection to othercomputing devices such as network input/output devices may be employed.

As mentioned above, in one aspect, some embodiments may employ acomputer system (such as the computer system 500) to perform methods inaccordance with various embodiments of the invention. According to a setof embodiments, some or all of the procedures of such methods areperformed by the computer system 500 in response to processor 510executing one or more sequences of one or more instructions (which mightbe incorporated into the operating system 540 and/or other code, such asan application program 545) contained in the working memory 535. Suchinstructions may be read into the working memory 535 from anothercomputer-readable medium, such as one or more of the non-transitorystorage device(s) 525. Merely by way of example, execution of thesequences of instructions contained in the working memory 535 mightcause the processor(s) 510 to perform one or more procedures of themethods described herein.

The terms “machine-readable medium,” “computer-readable storage medium”and “computer-readable medium,” as used herein, refer to any medium thatparticipates in providing data that causes a machine to operate in aspecific fashion. These mediums may be non-transitory. In an embodimentimplemented using the computer system 500, various computer-readablemedia might be involved in providing instructions/code to processor(s)510 for execution and/or might be used to store and/or carry suchinstructions/code. In many implementations, a computer-readable mediumis a physical and/or tangible storage medium. Such a medium may take theform of a non-volatile media or volatile media. Non-volatile mediainclude, for example, optical and/or magnetic disks, such as thenon-transitory storage device(s) 525. Volatile media include, withoutlimitation, dynamic memory, such as the working memory 535.

Common forms of physical and/or tangible computer-readable mediainclude, for example, a floppy disk, a flexible disk, hard disk,magnetic tape, or any other magnetic medium, a CD-ROM, any other opticalmedium, any other physical medium with patterns of marks, a RAM, a PROM,EPROM, a FLASH-EPROM, any other memory chip or cartridge, or any othermedium from which a computer can read instructions and/or code.

Various forms of computer-readable media may be involved in carrying oneor more sequences of one or more instructions to the processor(s) 510for execution. Merely by way of example, the instructions may initiallybe carried on a magnetic disk and/or optical disc of a remote computer.A remote computer might load the instructions into its dynamic memoryand send the instructions as signals over a transmission medium to bereceived and/or executed by the computer system 500.

The communications subsystem 530 (and/or components thereof) generallywill receive signals, and the bus 505 then might carry the signals(and/or the data, instructions, etc. carried by the signals) to theworking memory 535, from which the processor(s) 510 retrieves andexecutes the instructions. The instructions received by the workingmemory 535 may optionally be stored on a non-transitory storage device525 either before or after execution by the processor(s) 510.

It should further be understood that the components of computer system500 can be distributed across a network. For example, some processingmay be performed in one location using a first processor while otherprocessing may be performed by another processor remote from the firstprocessor. Other components of computer system 500 may be similarlydistributed. As such, computer system 500 may be interpreted as adistributed computing system that performs processing in multiplelocations. In some instances, computer system 500 may be interpreted asa single computing device, such as a distinct laptop, desktop computer,or the like, depending on the context.

The methods, systems, and devices discussed above are examples. Variousconfigurations may omit, substitute, or add various procedures orcomponents as appropriate. For instance, in alternative configurations,the methods may be performed in an order different from that described,and/or various stages may be added, omitted, and/or combined. Also,features described with respect to certain configurations may becombined in various other configurations. Different aspects and elementsof the configurations may be combined in a similar manner. Also,technology evolves and, thus, many of the elements are examples and donot limit the scope of the disclosure or claims.

Specific details are given in the description to provide a thoroughunderstanding of example configurations (including implementations).However, configurations may be practiced without these specific details.For example, well-known circuits, processes, algorithms, structures, andtechniques have been shown without unnecessary detail in order to avoidobscuring the configurations. This description provides exampleconfigurations only, and does not limit the scope, applicability, orconfigurations of the claims. Rather, the preceding description of theconfigurations will provide those skilled in the art with an enablingdescription for implementing described techniques. Various changes maybe made in the function and arrangement of elements without departingfrom the spirit or scope of the disclosure.

Also, configurations may be described as a process which is depicted asa flow diagram or block diagram. Although each may describe theoperations as a sequential process, many of the operations can beperformed in parallel or concurrently. In addition, the order of theoperations may be rearranged. A process may have additional steps notincluded in the figure. Furthermore, examples of the methods may beimplemented by hardware, software, firmware, middleware, microcode,hardware description languages, or any combination thereof. Whenimplemented in software, firmware, middleware, or microcode, the programcode or code segments to perform the necessary tasks may be stored in anon-transitory computer-readable medium such as a storage medium.Processors may perform the described tasks.

Having described several example configurations, various modifications,alternative constructions, and equivalents may be used without departingfrom the spirit of the disclosure. For example, the above elements maybe components of a larger system, wherein other rules may takeprecedence over or otherwise modify the application of the invention.Also, a number of steps may be undertaken before, during, or after theabove elements are considered.

Furthermore, the example embodiments described herein may be implementedas logical operations in a computing device in a networked computingsystem environment. The logical operations may be implemented as: (i) asequence of computer implemented instructions, steps, or program modulesrunning on a computing device; and (ii) interconnected logic or hardwaremodules running within a computing device.

Although the subject matter has been described in language specific tostructural features and/or methodological acts, it is to be understoodthat the subject matter defined in the appended claims is notnecessarily limited to the specific features or acts described above.Rather, the specific features and acts described above are disclosed asexample forms of implementing the claims.

Also, the terms in the claims have their plain, ordinary meaning unlessotherwise explicitly and clearly defined by the patentee. The indefinitearticles “a” or “an,” as used in the claims, are defined herein to meanone or more than one of the element that the particular articleintroduces; and subsequent use of the definite article “the” is notintended to negate that meaning. Furthermore, the use of ordinal numberterms, such as “first,” “second,” etc., to clarify different elements inthe claims is not intended to impart a particular position in a series,or any other sequential character or order, to the elements to which theordinal number terms have been applied.

What is claimed:
 1. A media device comprising: one or more processors;and a memory communicatively coupled with and readable by the one ormore processors and having stored therein processor-readableinstructions which, when executed by the one or more processors, causethe one or more processors to perform operations comprising: receiving aplurality of particularized content items; storing the plurality ofparticularized content items in a storage device; receiving firstcontent that corresponds to at least one segment of a plurality ofsegments of audiovisual content; processing a last portion of the atleast one segment of the plurality of segments before an end of the atleast one segment to detect a first set of one or more characteristicsof audiovisual content of the last portion, the first set of one or morecharacteristics of audiovisual content comprising one or more acousticcharacteristics and/or one or more dialogue characteristics; selecting asubset of the plurality of particularized content items based at leastin part on matching a second set of characteristics of the subset of theplurality of particularized content items to the first set ofcharacteristics of the audiovisual content of the last portion; andoutputting the first content for display with a display device, then thesubset of the plurality of particularized content items in succession sothat display of the subset of the plurality of particularized contentitems directly follows display of the last portion of the at least onesegment.
 2. The media device as recited in claim 1, wherein theplurality of segments of audiovisual content corresponds to a televisionprogram or a movie, and the last portion of the at least one segment ofthe plurality of segments before the end of the at least one segmentcorresponds to a scene of the television program or the movie that isdirectly before a break in the television program or the movie.
 3. Themedia device as recited in claim 2, where the selecting the subset ofthe plurality of particularized content items is based at least in parton scoring one or more matches of the second set of characteristics ofthe subset of the plurality of particularized content items to the firstset of characteristics of the audiovisual content of the last portion.4. The media device as recited in claim 3, where the selecting thesubset of the plurality of particularized content items comprisesselecting a highest scored match based at least in part on the scoring.5. The media device as recited in claim 4, where the one or moreacoustic characteristics comprise one or more music characteristics. 6.The media device as recited in claim 5, where: the one or more dialoguecharacteristics correspond to a first category of characteristics; theone or more music characteristics correspond to a second category ofcharacteristics; the scoring the one or more is based at least in parton either the first category of characteristics or the second categoryof characteristics; and the operations further comprise: when the scoredoes not satisfy a score threshold, selecting the subset of theplurality of particularized content items based at least in part on theother of the first category of characteristics and the second categoryof characteristics.
 7. The media device as recited in claim 6, theoperations further comprising: selecting an additional content item ofthe plurality of particularized content items based at least in part onmatching a second set of one or more characteristics of an initialportion of the additional content item to a last portion of the subsetof the plurality of particularized content items; and outputting theadditional content item to directly follow the subset of the pluralityof particularized content items.
 8. A method comprising: receiving aplurality of particularized content items; storing the plurality ofparticularized content items in a storage device; receiving firstcontent that corresponds to at least one segment of a plurality ofsegments of audiovisual content; processing a last portion of the atleast one segment of the plurality of segments before an end of the atleast one segment to detect a first set of one or more characteristicsof audiovisual content of the last portion, the first set of one or morecharacteristics of audiovisual content comprising one or more acousticcharacteristics and/or one or more dialogue characteristics; selecting asubset of the plurality of particularized content items based at leastin part on matching a second set of characteristics of the subset of theplurality of particularized content items to the first set ofcharacteristics of the audiovisual content of the last portion; andoutputting the first content for display with a display device, then thesubset of the plurality of particularized content items in succession sothat display of the subset of the plurality of particularized contentitems directly follows display of the last portion of the at least onesegment.
 9. The method as recited in claim 8, wherein the plurality ofsegments of audiovisual content corresponds to a television program or amovie, and the last portion of the at least one segment of the pluralityof segments before the end of the at least one segment corresponds to ascene of the television program or the movie that is directly before abreak in the television program or the movie.
 10. The method as recitedin claim 9, where the selecting the subset of the plurality ofparticularized content items is based at least in part on scoring one ormore matches of the second set of characteristics of the subset of theplurality of particularized content items to the first set ofcharacteristics of the audiovisual content of the last portion.
 11. Themethod as recited in claim 10, where the selecting the subset of theplurality of particularized content items comprises selecting a highestscored match based at least in part on the scoring.
 12. The method asrecited in claim 11, where the one or more acoustic characteristicscomprise one or more music characteristics.
 13. The method as recited inclaim 12, where: the one or more dialogue characteristics correspond toa first category of characteristics; the one or more musiccharacteristics correspond to a second category of characteristics; thescoring the one or more is based at least in part on either the firstcategory of characteristics or the second category of characteristics;and the operations further comprise: when the score does not satisfy ascore threshold, selecting the subset of the plurality of particularizedcontent items based at least in part on the other of the first categoryof characteristics and the second category of characteristics.
 14. Themethod as recited in claim 13, the operations further comprising:selecting an additional content item of the plurality of particularizedcontent items based at least in part on matching a second set of one ormore characteristics of an initial portion of the additional contentitem to a last portion of the subset of the plurality of particularizedcontent items; and outputting the additional content item to directlyfollow the subset of the plurality of particularized content items. 15.One or more non-transitory, machine-readable media havingmachine-readable instructions thereon which, when executed by one ormore processing devices, cause the one or more processing devices toperform: receiving a plurality of particularized content items; storingthe plurality of particularized content items in a storage device;receiving first content that corresponds to at least one segment of aplurality of segments of audiovisual content; processing a last portionof the at least one segment of the plurality of segments before an endof the at least one segment to detect a first set of one or morecharacteristics of audiovisual content of the last portion, the firstset of one or more characteristics of audiovisual content comprising oneor more acoustic characteristics and/or one or more dialoguecharacteristics; selecting a subset of the plurality of particularizedcontent items based at least in part on matching a second set ofcharacteristics of the subset of the plurality of particularized contentitems to the first set of characteristics of the audiovisual content ofthe last portion; and outputting the first content for display with adisplay device, then the subset of the plurality of particularizedcontent items in succession so that display of the subset of theplurality of particularized content items directly follows display ofthe last portion of the at least one segment.
 16. The one or morenon-transitory, machine-readable media of claim 15, wherein theplurality of segments of audiovisual content corresponds to a televisionprogram or a movie, and the last portion of the at least one segment ofthe plurality of segments before the end of the at least one segmentcorresponds to a scene of the television program or the movie that isdirectly before a break in the television program or the movie.
 17. Theone or more non-transitory, machine-readable media of claim 16, wherethe selecting the subset of the plurality of particularized contentitems is based at least in part on scoring one or more matches of thesecond set of characteristics of the subset of the plurality ofparticularized content items to the first set of characteristics of theaudiovisual content of the last portion.
 18. The one or morenon-transitory, machine-readable media of claim 17, where the selectingthe subset of the plurality of particularized content items comprisesselecting a highest scored match based at least in part on the scoring.19. The one or more non-transitory, machine-readable media of claim 18,where the one or more acoustic characteristics comprise one or moremusic characteristics.
 20. The one or more non-transitory,machine-readable media of claim 19, where: the one or more dialoguecharacteristics correspond to a first category of characteristics; theone or more music characteristics correspond to a second category ofcharacteristics; the scoring the one or more is based at least in parton either the first category of characteristics or the second categoryof characteristics; and the operations further comprise: when the scoredoes not satisfy a score threshold, selecting the subset of theplurality of particularized content items based at least in part on theother of the first category of characteristics and the second categoryof characteristics.